#pragma once
#include <iostream>
#include <string>
#include <fstream>
#include <cassert>
#include <memory>
#include <vector>
#include <direct.h>
using namespace std;

class ModelSettings
{
public:
	ModelSettings();
	ModelSettings(string modelTypes);
public:
	double gVxStart;
	double gVxEnd;
	double gVy;
	double startInjectionYPosition;
	double	endInjectionYPosition;
	double totalMassFlowRate;
	double	pVx0;
	double	pVy0;
	double	pT0;
	double  pRho;
	int numberInjectionPosition;
	int	numberIterationSteps;
	int sizeTypes;// 0, user-defined size distribution, nBins must be equal to the number of User_DX provided; Rosin-Rammler data will not be used
	//1, Rosin-Rammler determined size distribution, nBins must be equal to PSD_RR_nBins; used-defined data will not be used
	int nBins;
	double PSD_RR_Dmin;
	double	PSD_RR_Dmax;
	double	PSD_RR_Dmean;
	double	PSD_RR_SP;
	int	PSD_RR_nBins;
	vector<double>	PSD_User_Dia;
	vector<double>	PSD_User_DiaRatio;
private:
	string GetInputDirectory(string fileName);
};

